1. Technical Field
The present invention relates to modulation and demodulation of trellis modulated codes and in particular to processes for performing noncoherent coded modulation of such codes.
2. Background Art
Digital communication systems used in practical applications are often very complicated. For example, the receiver for the NASA Deep Space Network took over one decade to develop and cost millions of dollars. Moreover, every communication system is different. There are many elements to be defined including the code, the modulation, the equalizer, the transmitted frequency, etc. For any such element, there are many possible methods of implementations. To investigate the theory of the operation of a digital communication system, it would be desirable to develop a unifying representation. Working in such a framework will enable us to treat a large class of communication systems as one.
A baseband equivalent block diagram of a digital communication system is shown in FIG. 1. All the signals are represented by their complex envelopes. Our goal is to derive a vectorized version, as shown in FIG. 2. Let x(t) be one of the possible transmitted signals and T.sub.s the duration of an individual symbol. Let us choose a complete orthogonal set {.phi..sub.n } of complex functions such that ##EQU1##
It is convenient to assume that the transmitter (i.e., the encoder 100 and modulator 110 of FIG. 1) is turned on at t=0. Then we can represent x(t) as ##EQU2##
where ##EQU3##
and D is the number of complex dimensions needed to represent each symbol x.sub.i (t) in the specific coordinate system {.phi..sub.n }. The symbols x.sub.i (t) may have an infinite duration, as in the case of Nyquist pulses. Most of the energy of x.sub.i (t) is usually found within the time iT.sub.s &lt;t&lt;(i+1)T.sub.s (with proper alignment of the time origin). For certain modulation types of choices of {.phi..sub.n }, D can be infinite. Each symbol of x(t) will be written as a complex vector of dimension D, x.sub.i =(x.sub.i,0, . . . , x.sub.i,D- 1). It follow that we can describe the whole transmitter 100, 110 as a code which maps the sequence of input symbols (which are commonly bits) to a sequence of output symbols which are complex vectors, each of D dimensions. The code is often a block code, operating on a finite number of symbols, or a trellis code, operating on an infinite input sequence and outputting an infinite sequence. Practically everything is finite, but for a long message the infinite length is a good approximation. A block code is a mapping between a block of input symbols to a block of output symbols. A trellis code is a state machine. The input symbol and the current state determine the next state, and for each such transition one or more output symbols are assigned. We will assume that {.phi..sub.i } are chosen such that there is no Inter-Symbol Interference (ISI) at the matched filter output. This condition can be defined as ##EQU4##
If no such representation is possible, then it is always possible to form an equivalent system where the ISI is converted into a trellis code in which output symbols have no ISI.
Let us try some examples. The first is Binary Phase Shift Keying (BPSK) modulation without coding. ##EQU5##
where q(t) is some waveform which does not lead to ISI, and .alpha..sub.i =.+-.1 corresponds to the binary input symbols. Naturally, we choose .phi..sub.0 (t)=q(t) and D=1. Then we have x.sub.i =.alpha..sub.i. The code is reduced to a one-to-one mapping from input bits to output symbols. The next example is DPSK (Differential Phase Shift Keying) modulation. Here ##EQU6##
with initial conditions .beta..sub.-1 =1. We use .phi..sub.0 (t)=q(t) and x.sub.i =.beta..sub.i. There is a trellis code which maps the input bits to the output symbols .beta..sub.i. This code has two states, but has no redundancy (looked upon as a convolutional code, this encoder is non-minimal. The minimal encoder sends the bits uncoded, i.e., it has only one state). Its trellis is shown in FIG. 3.
Any modulator with memory is equivalent to a code, most often a trellis code. Adding a binary encoder (which may be the encoder 100) in front of such a modulator (which may be the modulator 110) merely generates an equivalent code. A good example of such modulator is CPM (Continuous Phase Modulation). Some workers prefer to separate a code into two parts. The first is a binary encoder and the second is a memoryless mapper from bits to complex valued vectors.
The channel 120 of FIG. 1 attenuates, filters, adds noise and causes a phase shift to the signal. Coherent channels do not cause a phase shift to the signal (a phase shift of .phi. is mathematically a multiplication of e.sup.j.phi. of the base-band signal). Noncoherent channels cause random time-varying phase shifts.
The final block or receiver includes a correlator 130 and a decoder 140 and serves to decode the input signal back to the transmitted information. Let r(t) be the complex envelope of the received signal. r(t), as x(t), is decomposed by the orthonormal functions as ##EQU7##
Note that an infinite number of dimensions is needed in general to represent r(t) due to the infinite dimensionality of the noise, but later we will only use D of them since all the components of the received signal outside the signal space are irrelevant for the decision. For an additive noise channel, we can express the received noise n(t) in the same way.
A large class of receiving systems, either coded or uncoded can be represented as follows. Assuming that there is no timing error between the transmitter and the receiver, the receiver performs symbol by symbol correlations between the received signal, r(t), and a candidate signal x(t) (a possible transmitted signal). The results of these correlations are the arguments of a real-valued likelihood function .LAMBDA.(x). The quantity .LAMBDA. is often called a "metric". The receiver chooses x which maximizes this function. The correlator output for the i'th symbol is defined as ##EQU8##
where r.sub.i =(r.sub.i,0, r.sub.i,1, . . . , r.sub.i,D-1) and `.dagger.` denotes the conjugate and transpose of a vector or matrix. The vector .mu.=(.mu..sub.0, . . . , .mu..sub.N-1), representing the sufficient statistics for decision, is the input to the likelihood function EQU .LAMBDA.(x)=f(.mu.). (9)
Here, N is the number of symbols the decoder 140 operates on. For a block code, N is the size of the output block. For the case of uncoded modulation N is usually equal to 1, and for a trellis code N.fwdarw..infin.. For a coherent additive noise channel we can express r.sub.i as EQU r.sub.i =x.sub.i +n.sub.i, (10)
where n.sub.i =(n.sub.i,0, n.sub.i,1, . . . , n.sub.i,D- 1). For a coherent decoder, for the case of equiprobable and equal-energy waveforms over the Additive White Gaussian Noise or AWGN channel, the optimal likelihood function, f, is ##EQU9##
We see that the receiver is composed of two parts. The front end is the demodulator or correlator 130, which correlates the input signal with all the possible symbols. Its output is fed into the decoder 140 (or decision device for the uncoded case) which operates by maximizing the likelihood function, .LAMBDA.(x) and finding the information bits that correspond to the sequence which achieves this maximum. The decoder 140 is illustrated in FIG. 4. The correlation at the front end is, most often, accomplished by plural matched filters 132 constituting a correlator bank. A matched filter 132 will either output the component r.sub.i,j using .phi..sub.j as the template, or will output .mu..sub.i using x.sub.i (t) as the template. In the first case, some signal processing block will compute the vector product r.sub.i.sup..LAMBDA. x.sub.i. We will call this type of receiver a correlator-based receiver. Hereafter, a decoder will always refer to a device which maximizes a likelihood function as described above. The definition of the code is general and it includes the uncoded case as a special case. Since we have included the uncoded modulations as special case of the coded modulations, "decoding" will include the detection using a symbol-by-symbol decision device.
If the decoder 140 is a noncoherent decoder, it ignores the phase shift .phi.(t) of the channel 120 with the restriction that the phase is slowly varying. The noncoherent decoder 140 is built under the assumption that we have no information about .phi.(t), except its slow variation. When some information is available about the phase, for example if .phi.(t) is the residual phase error of a Phase Locked Loop (PLL) within the receiver, then the resulting decoder will be called partially coherent. It is an object of the invention to provide the optimal noncoherent decoder.